package ads.corporativa.aula0205.tdd.ex04;

import java.util.Calendar;
import java.util.List;

public class FiltroDeFaturas {

	public void filtra(List<Fatura> faturas) {
		if (faturas.isEmpty())
			return;

		Fatura fatura = null;
		for (int i = 0; i < faturas.size(); i++) {
			fatura = faturas.get(i);
			
			if (fatura.getValor() < 2000) {
				faturas.remove(i--);
			} else if (fatura.getValor() < 2500) {
				Calendar umMesAtras = Calendar.getInstance();
				umMesAtras.add(Calendar.MONTH, -1);
				if (fatura.getData().compareTo(umMesAtras) <= 0) {
					faturas.remove(i--);
				}
			} else if (fatura.getValor() < 3000) {
				Calendar doisMesAtras = Calendar.getInstance();
				doisMesAtras.add(Calendar.MONTH, -2);
				if (fatura.getCliente().getDataDeInclusao().compareTo(doisMesAtras) <= 0) {
					faturas.remove(i--);
				}
			} else if (fatura.getValor() > 4000 && fatura.getCliente().moraNaRegiaoSul()) {
				faturas.remove(i--);
			}
		}
	}

}

